package org.crystal.tradecraft.model.binance.market.filter;

import lombok.Data;
import lombok.EqualsAndHashCode;
import org.crystal.tradecraft.model.binance.enumeration.FilterType;

/**
 * <h3>MIN_NOTIONAL 最小金额</h3>
 * MIN_NOTIONAL过滤器定义了交易对订单所允许的最小名义价值(成交额)。 订单的名义价值是价格数量。 如果是高级订单(比如止盈止损订单STOP_LOSS_LIMIT)，名义价值会按照stopPrice quantity来计算。 如果是冰山订单，名义价值会按照price * icebergQty来计算。 applyToMarket确定 MIN_NOTIONAL过滤器是否也将应用于MARKET订单。<p>
 * 由于MARKET订单没有价格，因此会在最后avgPriceMins分钟内使用平均价格。<p>
 * avgPriceMins是计算平均价格的分钟数。 0表示使用最后的价格。
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class MinNotional extends BinanceFilter {

    public MinNotional() {
        super(FilterType.MIN_NOTIONAL);
    }

    private double minNotional;

    private boolean applyToMarket;

    private int avgPriceMins;
}
